"""Redis缓存管理。"""

from typing import Optional
import redis.asyncio as redis
from .config import settings

# 全局Redis客户端
_redis_client: Optional[redis.Redis] = None


async def init_redis():
    """初始化Redis连接。"""
    global _redis_client
    
    if _redis_client is None:
        _redis_client = await redis.from_url(
            settings.redis_url,
            decode_responses=True
        )
    
    return _redis_client


async def close_redis():
    """关闭Redis连接。"""
    global _redis_client
    
    if _redis_client is not None:
        await _redis_client.close()
        _redis_client = None


async def get_redis() -> redis.Redis:
    """获取Redis实例（FastAPI依赖）。"""
    global _redis_client
    
    if _redis_client is None:
        await init_redis()
    
    return _redis_client